package com.smedi.ismedi.constructionproject.core.application.service;

import com.smedi.ismedi.constructionproject.core.application.command.*;
import com.smedi.ismedi.constructionproject.core.domain.aggregatemodel.ProjectApply;
import com.smedi.ismedi.organization.api.dto.response.HrOrganizationResponse;
import com.smedi.ismedi.organization.api.dto.response.ProjectOrganizationResponse;

import java.util.List;

/**
 * @Author: xulinjun
 * @Date: 2021-6-21 10:25
 */
public interface ProjectApplyApplicationService {
    /**
     * 获取 项目免装申请 token
     *
     * @return String
     */
    String getBusinessToken();

    ProjectApply postSave(ProjectApplyCreateCommand projectApplyCreateCommand);

    ProjectApply postEdit(ProjectApplyEditCommand projectApplyEditCommand);

    ProjectApply instituteLeaderApproval(ProcessInstituteLeaderApprovalCommand approvalCommand);

    ProjectApply engineerApproval(ProcessEngineerApprovalCommand approvalCommand);

    ProjectApply engineeringLeaderApproval(ProcessEngineeringLeaderApprovalCommand approvalCommand);

    ProjectApply generalInstituteLeaderApproval(ProcessGeneralInstituteLeaderApprovalCommand approvalCommand);

    ProjectApply  projectApplyDetail(Long id);

    Boolean updateMonitorType();

    ProjectApply view(Long projectId);

    List<HrOrganizationResponse> getOrganization(List<Long> hrOrganizationIds);
}
